package 康复训练_JavaGo并驾齐驱;

public class Jz58II左旋转字符串 {

    /**
     * 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。
     * 请定义一个函数实现字符串左旋转操作的功能。比如，输入字符串"abcdefg"和数字2，该函数将返回左旋转两位得到的结果"cdefgab"。
     */

    public String reverseLeftWords(String s, int n) {
        char[] sourceArr = s.toCharArray();
        char[] arr = new char[s.length()];
        // 全体往左移动
        for (int i = 0; i < sourceArr.length; i++) {
            int newIndex = getIndex(i, n, sourceArr.length);
            arr[newIndex] = sourceArr[i];
        }
        return String.valueOf(arr);
    }

    private int getIndex(int index, int n, int length) {
        if (index >= n) {
            return index - n;
        }
        return length - (n - index);
    }

}
